package day1;

import java.util.Scanner;

import org.junit.Test;

public class HelloWorld {

	// main方法是java的入口方法
	// main
	public static void main(String[] args) {
		// 在控制台里面打印信息
		// syso
		System.out.println("HelloWorld");

		int age$ = 23;
		// The value of the local variable b is not used
		int b = 34;
		// =：是把右边这个值赋值给左边这个变量，判断相等用"=="
		// variable 变量：只要是这个类型的值，都可以赋值给这个变量
		int age = 22;
		age = 23;
		// 常量
		final double pi = 3.14;
		// pi = 3.1;
	}

	@Test
	public void test() {
		// syst: trace
		System.out.println("HelloWorld.test()");
		boolean b1 = true;
		boolean b2 = false;

		int age1 = 23;
		byte age2 = 23;
		// byte age3 = 255;
		byte age4 = -128;

		char ch1 = 'a';
		char ch2 = '中';
		System.out.println(ch1);
		System.out.println(ch2);

		String str = "hello";
	}

	@Test
	public void test2() {
		char ch = 'a';// 在编码表里面对应97
		System.out.println(ch);
		// 整数默认是int
		// 从小到大自动类型转换
		System.out.println(ch + 1);// 98
		System.out.println(ch + 2);// 99
		// 从大到小需要强制类型转换
		System.out.println((char) (ch + 1));// b
		System.out.println((char) (ch + 2));// c
		// 从大到小需要强制类型转换，可能会丢失精度(装水的杯子大小不一样)
		System.out.println((int) 3.14);// 3
	}

	@Test
	public void test3() {
		int num1 = 3;
		int num2 = 5;
		System.out.println(num1 + num2);
		int result = num1 + num2;
		System.out.println(result);
		System.out.println(8 / 2);// 4
		System.out.println(8 % 2);// 0
		System.out.println(8 / 5);// 1
		System.out.println(8 % 5);// 3
	}

	@Test
	public void test4() {
		int i = 1;
		i = i + 1;// 2
		i++;
		++i;
		System.out.println(i);// 4

		System.out.println(i++);// 4
		System.out.println(++i);// 6
	}

	@Test
	public void test5() {
		int age1 = 23;
		int age2 = 24;
		boolean bool = age1 > age2;
		System.out.println(bool);
		System.out.println(5 >= 5);// true
		System.out.println(3 >= 5);// false
		System.out.println(5 <= 10);// true
		System.out.println(5 < 10);// true
		System.out.println(3 != 4);// true
	}

	@Test
	public void test6() {
		int num1 = 57;
		int num2 = 456;
		boolean bool = (num1 > 60) || (num2 > 400);
		System.out.println(bool);
		System.out.println(!bool);
	}

	@Test
	public void test7() {
		int num1 = 3;
		int num2 = 5;
		// &&短路
		System.out.println(num1 < 0 && num1++ < num2);// false
		System.out.println(num1);// 3
		System.out.println(num2);// 5
		// ||短路
		System.out.println(num1 > 0 || num1++ < num2);// true
		System.out.println(num1);// 3
		System.out.println(num2);// 5
	}

//	>=90   <=100    优秀 
//	>=80    <90       良好
//	>=70    <80       一般
//	>=60    <70      及格
//	<60                    不及格
	@Test
	public void test11() {
		// Scanner能帮助我们完成从控制台输入
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入成绩：");
		int score = scanner.nextInt();
		// 卫语句
		if (score > 100 || score < 0) {
			System.out.println("您输入的数据非法");
			return;
		}
		
		if (score >= 90 && score <= 100) {
			System.out.println("优秀");
		} else if (score >= 80 && score < 90) {
			System.out.println("良好");
		} else if (score >= 70 && score < 80) {
			System.out.println("一般");
		} else if (score >= 60 && score < 70) {
			System.out.println("及格");
		} else {
			System.out.println("不及格");
		}
	}

	@Test
	public void test33() {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入年份：");
		int year = scanner.nextInt();
		if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
			System.out.println("是闰年");
		} else {
			System.out.println("不是闰年");
		}
	}

	@Test
	public void test23() {
		int num1 = 3;
		int num2 = 5;
		System.out.println("num1:" + num1);
		System.out.println("num2:" + num2);
		// 交换两个变量的值：
		int temp = num1;
		num1 = num2;
		num2 = temp;
		System.out.println("num1: " + num1);
		System.out.println("num2: " + num2);

	}

//	2.1、编写一个收银台收款程序，if
//	定义输入----单价、数量、用户输入金额
//	定义输出----应收金额、找零
//	使用double类型变量 scanner.nextDouble();
//	2.2、当总价>=500时候打八折
//	2.3、考虑程序出现异常的情况，如：收款金额小于应收金额
//	      若收款金额大于等于应收金额，则计算找零后输出
//	      若收款金额小于应收金额，输出错误信息。
	@Test
	public void test45() {
		// grsds  geRenSuoDeShui
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入单价：");
		double price = scanner.nextDouble();
		if (price > 0) {
			System.out.println("请输入数量：");
			double num = scanner.nextDouble();
			if (num > 0) {
				System.out.println("输入支付金额：");
				double inputPrice = scanner.nextDouble();
				double totalPrice = price * num;
				
				if (totalPrice >= 500) {
					// totalPrice = totalPrice * 0.8;
					totalPrice *= 0.8;
				}
				
				if (inputPrice > totalPrice) {
					System.out.println("找零：" + (inputPrice - totalPrice));
				} else if (inputPrice == totalPrice) {
					System.out.println("正好");
				} else {
					System.out.println("金额不足");
				}
			} else {
				System.out.println("您输入的数量非法");
			}
		} else {
			System.out.println("您输入的价格非法");
		}
		
		
		// 想看阿里巴巴编码规范手册
		// 如果太忙，换一个时间再看
		// 如果太闲，就出去玩
		// 只有不忙不闲的时候才去看阿里巴巴编码规范手册
//		if (isBusy()) {
//			System.out.println("换个时间看");
//		} else {// 不忙
//			if (isFree()) {
//				System.out.println("应该出去玩");
//			} else {// 不闲
//				System.out.println("不忙不闲，看这个本书");
//			}
//		}
	}
	
	@Test
	public void test223() {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入单价：");
		double price = scanner.nextDouble();
		if (price <= 0) {
			System.out.println("您输入的价格非法");
			return; // return 退出这个方法，后面的代码都不执行
		}
		System.out.println("请输入数量：");
		double num = scanner.nextDouble();
		if (num <= 0) {
			System.out.println("您输入的数量非法");
			return; // return 退出这个方法，后面的代码都不执行
		}
		System.out.println("输入支付金额：");
		double inputPrice = scanner.nextDouble();
		double totalPrice = price * num;
		
		if (totalPrice >= 500) {
			// totalPrice = totalPrice * 0.8;
			totalPrice *= 0.8;
		}
		
		if (inputPrice > totalPrice) {
			System.out.println("找零：" + (inputPrice - totalPrice));
		} else if (inputPrice == totalPrice) {
			System.out.println("正好");
		} else {
			System.out.println("金额不足");
		}
	}

}
